home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 19 Adventure Games / ULTMAP.BIN (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  6.6 KB  |  172 lines

  1. 10 REM+---------------------------------      !
  2. 11 REM!     MAP FOR ULTIMA IV GAME            !       WRITTEN BY BOYD RAY
  3. 12 REM!        EDMONTON, ALBERTA              !
  4. 15 REM! THIS PROGRAM PRINTS A COMPLETE        ! MAP OF BRITANNIA IN THE FORM
  5. 20 REM! OF TWO HALVES (LEFT AND RIGHT)        ! EACH OF WHICH IS COMPRISED OF
  6. 30 REM! 256 LINES OF 128 CHARACTERS.          ! LATITUDE AND LONGITUDE GRIDS
  7. 40 REM! OCCUR EVERY 16 LINES BOTH WAYS        ! AND LABELING IS PROVIDED ON ALL
  8. 50 REM! FOUR SIDES. LANDMARKS ARE SIG-        ! NIFIED BY SELECTED CHARACTERS.
  9. 60 REM! SEE REMARKS BELOW. TIME TO PRINT      ! THE ENTIRE MAP IS ABOUT 4 HOURS
  10. 70 REM! AND 15 MINUTES. CODE ON LINES         ! 1000-1015 WORKS ON SEIKO - MAY
  11. 79 REM! NEED CHANGES TO SUIT OTHERS.          ! LANDMARK AND TERRAIN CHARACTERS
  12. 80 REM! ON LINES 4005 AND 4156-4164 MAY       ! CHANGED TO SUIT PREFERENCES.
  13. 81 REM! FOR SMALLER PORTIONS OF THE MAP,      ! CHANGE LINES 4070 AND 4080;
  14. 82 REM!     PAGE=0 PRINTS LEFT HALF,          !     PAGE=1 PRINTS RIGHT HALF,
  15. 83 REM!     ROW=0TO7 PRINTS TOP HALF,         !     ROW=8TO15 PRINTS BOT. HALF.
  16. 84 REM! TO PRINT LEFT HALF ONLY, CHANGE       ! LINES;
  17. 85 REM!     4070 PAGE=0                       !     4228 :
  18. 86 REM! TO PRINT RIGHT HALF ONLY, CHANGE      ! LINES;
  19. 87 REM!     4070 PAGE=1                       !     4228 :
  20. 88 REM! MAP COULD BE DONE IN 4 VERTICAL       ! STRIPS OF 64-67 CHARACTERS,
  21. 89 REM! UN-COMPRESSED, BY CHANGING LINES      ! 4070, 4228 AND;
  22. 90 REM!     4100 SET=0 (LEFT QUARTER)         !     4100 SET=1 (RIGHT QUARTER)
  23. 91 REM!     4210 IF PAGE=0THEN4214: IF        !     SET=0THEN4214
  24. 97 REM! SEXTANTS MAY BE PURCHASED IN A        ! VILLAGE ON AN ISLE NEAR THE
  25. 98 REM! CENTER OF THE WORLD...                ! ..GOOD LUCK AND HAPPY EXPLORING
  26. 99 REM+---------------------------------
  27. 1000 OPEN2,4,10:PRINT#2:REM RESET SEIKO
  28. 1005 OPEN9,4,13:PRINT#9:REM CONDENSED
  29. 1010 OPEN10,4,6:PRINT#10,CHR$(15):REM        SET VERTICAL PITCH
  30. 1015 OPEN1,4,7
  31. 2000 PRINT"[147]INSERT BRITANNIA DISK AND PRESS SPACE."
  32. 2010 GETQ$:IFQ$=""THEN2010
  33. 2020 PRINT"[147]WORKING..."
  34. 2025 PRINT"PRESS SPACE ANYTIME TO ABORT"
  35. 4000 DIM TRACK(1,15,1,3),SECT(1,15,1,3)
  36. 4005 SUB$=".=+-X*O@DTCVCCC"
  37. 4010 FORI=0TO1
  38. 4015   FORJ=0TO15
  39. 4020      FOR K=0TO1
  40. 4025         FORL=0TO3
  41. 4030            READ TR(I,J,K,L),SE(I,J,K,L)
  42. 4035         NEXT
  43. 4040      NEXT
  44. 4045   NEXT
  45. 4050 NEXT:PRINT""
  46. 4055 OPEN15,8,15:PRINT#15,"I0":INPUT#15,EN$,EM$,ET$,ES$
  47. 4060 IFEN$<>"00"THEN4250
  48. 4065 FORCHAN=3TO6:OPEN CH,8,CH,"#":NEXT
  49. 4066 PRINT#1,CHR$(12):REM SYNCHRONIZE AT                          TOP OF FORM
  50. 4070 FOR PAGE=0TO1:PG$="LEFT":IF PAGE=1 THEN PG$="RIGHT"
  51. 4080   FOR ROW=0TO15
  52. 4081      IFROW>0THEN4090
  53. 4082      IFPAGE=0THENPRINT#1,"    ";
  54. 4083      PRINT#1,"       ";:FORI=0TO7:PRINT#1,CHR$(I*(PAGE+1)+97);
  55. 4084      PRINT#1,"               ";:NEXT:PRINT#1,CHR$(13);
  56. 4085      PRINT#1,CHR$(13);:IFPAGE=0THENPRINT#1,"    ";
  57. 4086      FORI=0TO7:FORJ=0TO15:PRINT#1,CHR$(J+65);
  58. 4087      NEXTJ,I:PRINT#1,CHR$(13);
  59. 4088      IFPAGE=0THENPRINT#1,"    ";
  60. 4089      FORI=0TO127:PRINT#1,CHR$(96);:NEXT:PRINT#1,CHR$(13);
  61. 4090      FOR LINE=0TO15:PTR=LINE*16
  62. 4092         PRINT"PRINTING "PG$" PAGE, LINE";RO*16+LI+1;" OF 256"
  63. 4100         FOR SET=0TO1
  64. 4110            FOR CHAN=3TO6
  65. 4120            PRINT#15,"U1";CH;0;TR(PA,RO,SE,CH-3);SE(PA,RO,SE,CH-3)
  66. 4125               PRINT#15,"B-P";CH;PTR
  67. 4140               FOR COL=0TO15
  68. 4141                  GETQ$:IFQ$<>""THEN4250
  69. 4145                  GET#CH,B$
  70. 4150                  IFB$=""THENB$=CHR$(0)
  71. 4155                  L=ASC(B$)
  72. 4156                  IFL=76THENL$="%":GOTO4170
  73. 4160                  IFL=70THENL$="#":GOTO4170
  74. 4161                  IFL=61THENL$="A":GOTO4170
  75. 4162                  IFL=30THENL$="S":GOTO4170
  76. 4163                  IFL=29THENL$="R":GOTO4170
  77. 4164                  IFL=23THENL$="B":GOTO4170
  78. 4166                  IFL>15ORL=0THENL$=" ":GOTO4170
  79. 4167                  L$=MID$(SUB$,L,1)
  80. 4170                  IFL$=" "AND COL=15THENL$=CHR$(125)
  81. 4175                  IFL$=" "AND LINE=15THENL$=CHR$(96)
  82. 4180                  IF SET>0 OR PAGE>0 OR CHAN>3 OR COL>0 THEN4190
  83. 4182                  IF LINE<>7THENPRINT#1,"  ";:GOTO4186
  84. 4184                  PRINT#1,CHR$(ROW+97);" ";
  85. 4186                  PRINT#1,CHR$(LINE+65);CHR$(125);
  86. 4190                  PRINT#1,L$;
  87. 4200               NEXT
  88. 4205            NEXT
  89. 4210         NEXT:IF PAGE=0THEN4214
  90. 4211         PRINT#1,CHR$(LINE+65);" ";
  91. 4212         L$=" ":IF LINE=7THENL$=CHR$(ROW+97)
  92. 4213         PRINT#1,L$;
  93. 4214         PRINT#1,CHR$(13);
  94. 4215      NEXT
  95. 4216   NEXT
  96. 4221   IF PAGE=0THENPRINT#1,"    ";
  97. 4222   FORI=0TO7:FORJ=0TO15:PRINT#1,CHR$(J+65);
  98. 4223   NEXTJ,I:PRINT#1,CHR$(13);CHR$(13);
  99. 4224   IF PAGE=0THENPRINT#1,"    ";
  100. 4225   PRINT#1,"       ";:FORI=0TO7:PRINT#1,CHR$(I*(PAGE+1)+97);
  101. 4226   PRINT#1,"               ";:NEXT:PRINT#1,CHR$(13);
  102. 4227   PRINT#1,CHR$(12):REM START SECOND  PAGE AT TOP OF FORM
  103. 4228 NEXT
  104. 4230 FORI=10TO1STEP-1:CLOSEI:NEXT:CLOSE15
  105. 4235 POKE54273,70:POKE54278,249:POKE54296,15:POKE54276,17:POKE54276,16
  106. 4240 FORI=1TO400:NEXT:GETQ$:IFQ$=""THEN4235
  107. 4250 FORI=10TO1STEP-1:CLOSEI:NEXT:CLOSE15:END
  108. 4260 :
  109. 4261 REM  CODE ON DISK:  ITEM:  SYMBOL:
  110. 4262 REM      $00     DEEP SEA    SPACE
  111. 4263 REM      $01     SHALLOWS        .
  112. 4264 REM      $02   REEF/SHOAL        =
  113. 4265 REM      $03        MARSH        +
  114. 4266 REM      $04        GRASS        -
  115. 4267 REM      $05        BRUSH        X
  116. 4268 REM      $06       FOREST        *
  117. 4269 REM      $07        HILLS        O
  118. 4270 REM      $08    MOUNTAINS        @
  119. 4271 REM      $09     DUNGEONS        D
  120. 4272 REM      $0A        TOWNS        T
  121. 4273 REM      $0B       CASTLE        C
  122. 4274 REM      $0C      VILLAGE        V
  123. 4275 REM      $0D BRIT. CASTLE        C
  124. 4276 REM      $0E BRIT. CASTLE        C
  125. 4277 REM      $0F BRIT. CASTLE        C
  126. 4278 REM      $17       BRIDGE        B
  127. 4279 REM      $1D        RUINS        R
  128. 4280 REM      $1E       SHRINE        S
  129. 4281 REM      $3D         ANKH        A
  130. 4282 REM      $46  FORCE FIELD        #
  131. 4283 REM      $4C  FORCE FIELD        %
  132. 4285 :
  133. 4286 :
  134. 4290 REM LEFT HALF OF MAP
  135. 4291 :
  136. 4300 DATA1,1,1,2,1,3,1,4,1,5,1,6,1,7,1,8
  137. 4301 DATA1,17,1,18,1,19,1,20,2,0,2,1,2,2,2,3
  138. 4302 DATA2,12,2,13,2,14,2,15,2,16,2,17,2,18,2,19
  139. 4303 DATA3,7,3,8,3,9,3,10,3,11,3,12,3,13,3,14
  140. 4304 DATA4,2,4,3,4,4,4,5,4,6,4,7,4,8,4,9
  141. 4305 DATA4,18,4,19,4,20,5,0,5,1,5,2,5,3,5,4
  142. 4306 DATA5,13,5,14,5,15,5,16,5,17,5,18,5,19,5,20
  143. 4307 DATA6,8,6,9,6,10,6,11,6,12,6,13,6,14,6,15
  144. 4308 DATA7,3,7,4,7,5,7,6,7,7,7,8,7,9,7,10
  145. 4309 DATA7,19,7,20,8,0,8,1,8,2,8,3,8,4,8,5
  146. 4310 DATA8,14,8,15,8,16,8,17,8,18,8,19,8,20,9,0
  147. 4311 DATA9,9,9,10,9,11,9,12,9,13,9,14,9,15,9,16
  148. 4312 DATA10,4,10,5,10,6,10,7,10,8,10,9,10,10,10,11
  149. 4313 DATA10,20,11,0,11,1,11,2,11,3,11,4,11,5,11,6
  150. 4314 DATA11,15,11,16,11,17,11,18,11,19,11,20,12,0,12,1
  151. 4315 DATA12,10,12,11,12,12,12,13,12,14,12,15,12,16,12,17
  152. 4320 :
  153. 4321 :
  154. 4390 REM RIGHT HALF OF MAP
  155. 4391 :
  156. 4400 DATA1,9,1,10,1,11,1,12,1,13,1,14,1,15,1,16
  157. 4401 DATA2,4,2,5,2,6,2,7,2,8,2,9,2,10,2,11
  158. 4402 DATA2,20,3,0,3,1,3,2,3,3,3,4,3,5,3,6
  159. 4403 DATA3,15,3,16,3,17,3,18,3,19,3,20,4,0,4,1
  160. 4404 DATA4,10,4,11,4,12,4,13,4,14,4,15,4,16,4,17
  161. 4405 DATA5,5,5,6,5,7,5,8,5,9,5,10,5,11,5,12
  162. 4406 DATA6,0,6,1,6,2,6,3,6,4,6,5,6,6,6,7
  163. 4407 DATA6,16,6,17,6,18,6,19,6,20,7,0,7,1,7,2
  164. 4408 DATA7,11,7,12,7,13,7,14,7,15,7,16,7,17,7,18
  165. 4409 DATA8,6,8,7,8,8,8,9,8,10,8,11,8,12,8,13
  166. 4410 DATA9,1,9,2,9,3,9,4,9,5,9,6,9,7,9,8
  167. 4411 DATA9,17,9,18,9,19,9,20,10,0,10,1,10,2,10,3
  168. 4412 DATA10,12,10,13,10,14,10,15,10,16,10,17,10,18,10,19
  169. 4413 DATA11,7,11,8,11,9,11,10,11,11,11,12,11,13,11,14
  170. 4414 DATA12,2,12,3,12,4,12,5,12,6,12,7,12,8,12,9
  171. 4415 DATA12,18,12,19,12,20,13,0,13,1,13,2,13,3,13,4
  172.